package com.yymx.toback.common.sms;

import com.yunpian.sdk.YunpianClient;
import com.yunpian.sdk.model.Result;
import com.yunpian.sdk.model.SmsBatchSend;
import com.yunpian.sdk.model.SmsSingleSend;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Map;

/**
 * @Auther: ZYG
 * @Date: 2019/3/19 17:17
 * @Description:
 */
public class SmsUtil {

    private static final String apikey = "b41f5c2255e3fa91c31d5dc5ada6715b";

    /**
     * 单挑短信
     * @param mobile 手机号码（单条）
     * @param text  验证信息 （验证码）
     */
    public static Result sendSms(String mobile,String text){
        //初始化clnt,使用单例方式
        YunpianClient clnt = new YunpianClient(apikey).init();
        //发送短信API
        Map<String, String> param = clnt.newParam(2);
        param.put(YunpianClient.MOBILE, mobile);
        try {
            param.put(YunpianClient.TEXT, URLEncoder.encode(text,"UTF-8"));

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        Result<SmsSingleSend> r = clnt.sms().single_send(param);
        //获取返回结果，返回码:r.getCode(),返回码描述:r.getMsg(),API结果:r.getData(),其他说明:r.getDetail(),调用异常:r.getThrowable()
        //账户:clnt.user().* 签名:clnt.sign().* 模版:clnt.tpl().* 短信:clnt.com.yymx.crowd.common.sms().* 语音:clnt.voice().* 流量:clnt.flow().* 隐私通话:clnt.call().*
        //释放clnt
        clnt.close();
        return r;
    }


    /**
     * 批量发送短信
     * @param mobile 手机号码（多条）
     * @param text  通知
     */
    public static Result batchSendSms(String mobile, String text) {
        //初始化client,apikey作为所有请求的默认值(可以为空)
        YunpianClient clnt = new YunpianClient(apikey).init();
        Map<String, String> param = clnt.newParam(2);
        param.put(YunpianClient.MOBILE, mobile);
        param.put(YunpianClient.TEXT, text);
        Result<SmsBatchSend> r = clnt.sms().batch_send(param);
        //获取返回结果，返回码:r.getCode(),返回码描述:r.getMsg(),API结果:r.getData(),其他说明:r.getDetail(),调用异常:r.getThrowable()
        r.getData();
        //账户:clnt.user().* 签名:clnt.sign().* 模版:clnt.tpl().* 短信:clnt.com.yymx.crowd.common.sms().* 语音:clnt.voice().* 流量:clnt.flow().* 隐私通话:clnt.call().*
        //最后释放client
        clnt.close();
        return r;
    }


}
